package com.feri.api.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

import java.io.ByteArrayInputStream;
import java.util.Date;


public class AliOssUtil {
//存储空间所在的城市域名
public static final String endpoint = "oss-cn-beijing.aliyuncs.com";
//账号的key -保密
public static final String accessKeyId = "LTAI5t5ZPUfK5nTEUPCwzSxP";
//账号的密钥 -保密
public static final String accessKeySecret = "BdWzLO0B8Z7YhzBK3Hx2CvQJudyo32";
//存储空间名
public static final String bucketName = "datazz2209";
//阿里云 Oss的客户端对象
private static OSS client;
static {
    //完成实例化
    client = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
}
/**

 * 上传资源,新增文件
 * @param objname 上传的文件名，要求唯一
 * @param data 文件内容
 * @param date 访问地址有效期
 * @return 返回 访问地址*/
public static String upload(String objname,byte[] data,Date date){
    //上传文件内容
    client.putObject(bucketName,objname,new ByteArrayInputStream(data));
    //返回访问地址
    return getUrl(objname,date);
}
/**
 * 验证对象是否存在
 * @param obj 文件名*/
public static boolean exists(String obj){
   return client.doesObjectExist(bucketName, obj);
}
/**
 * 删除文件
 * @param obj 文件名*/
public static boolean delete(String obj){
    try{
        client.deleteObject(bucketName,obj);
        return true;
    }catch (Exception e){
        return false;
    }
}
/**
 * 获取对象的访问地址
 * @param obj 文件名
 * @param date 访问地址的有效期*/
public static String getUrl(String obj, Date date){
    return client.generatePresignedUrl(bucketName,obj,date).toString();
}

}
